package com.totcy.atom.bean;

import android.support.annotation.NonNull;

import java.util.List;

public class QuestionBean implements Comparable<QuestionBean> {
    /**
     * id : 18802
     * no : 1
     * category_id : 25
     * subject_id : 3
     * paper_id : 509
     * correct_answer : B
     * content_html : 基于TCP/IP协议的网络属于信息传输模型中的（ ）。
     * explain_html : 本题考查的是信息的传输模型基础知识。出自《系统集成项目管理工程师教程（第2版）》第1章 信息化知识，全书第3页。
     * 信息的传输模型：
     * (1)信源：产生信息的实体，信息产生后，由这个实体向外传播。如QQ使用者，他通过键盘录入的文字（如：你好！）是需要传播的信息。
     * (2)信宿：信息的归宿或接受者，如使用QQ的另一方（当然这一方也是信源），他透过电脑屏幕接收QQ使用者发送的文字（如：你好！）。
     * (3)信道：传送信息的通道，如TCP/IP网络。信道可以从逻辑上理解为抽象信道，出可以是具有物理意义的实际传送通道。TCP/IP网络是个逻辑上的概念，这个网络的物理通道可以是光纤、铜轴电缆、职绞线，也可以是4G网络，甚至是卫星或者微波。
     * (4)编码器：在信息论中是泛指所有变换信号的设备，实际上就是终端机的发送部分。它包括从信源到信道的所有设备，如量化器、压缩编码器、调制器等，使信源输出阿信号转换成适于信道传送的信号。在QQ应用中，键盘敲击会使键盘由不确定状态转换为某种确定状态，此时信息产生了，通过一系列的信号采集、加工、转换、编码，信息最终被封装为TCP/IP包，推入TCP/IP网络，开始传播之旅。从信息安全的角度出发，编码器还可以包括加密设备，加密设备利用密码学的知识，剥编码信息进行加密再编码。
     * (5)译码器：是编码器的逆变换设备，把信道上送来的信号（原始信息与噪声的叠加）转换成信宿能接受的信号，可包括解调器、译码器、数模转换器等。在上述QQ应用中，TCP/IP包被解析，信息将显示在信宿的电脑屏幕上，发送者传送信息的不确定性消除了。
     * (6)噪声：噪声可以理解为干扰，干扰可以来自于信息系统分层结构的任何一层，当噪声携带的信息大到一定程度的时候，在信道中传输的信息可以被噪声淹没导致传输失败。
     * updated_at : 1537496865
     * selections : [{"id":66428,"content_html":"信源"},{"id":66429,"content_html":"信道"},{"id":66430,"content_html":"信宿"},{"id":66431,"content_html":"编解码"}]
     * category : {"id":25,"created_at":1501466796,"updated_at":1501466796,"name":"计算机网络知识"}
     */

    private int id;
    private int no;
    private int category_id;
    private int subject_id;
    private int paper_id;
    private String correct_answer;
    private String content_html;
    private String explain_html;
    private long updated_at;
    private QuestionCategoryBean category;
    private List<SelectionBean> selections;

    private boolean showAnswer = false;
    private String selectAnswer = "";//未选择

    public String getSelectAnswer() {
        return selectAnswer;
    }

    public void setSelectAnswer(String selectAnswer) {
        this.selectAnswer = selectAnswer;
    }

    public boolean isShowAnswer() {
        return showAnswer;
    }

    public void setShowAnswer(boolean showAnswer) {
        this.showAnswer = showAnswer;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public int getCategory_id() {
        return category_id;
    }

    public void setCategory_id(int category_id) {
        this.category_id = category_id;
    }

    public int getSubject_id() {
        return subject_id;
    }

    public void setSubject_id(int subject_id) {
        this.subject_id = subject_id;
    }

    public int getPaper_id() {
        return paper_id;
    }

    public void setPaper_id(int paper_id) {
        this.paper_id = paper_id;
    }

    public String getCorrect_answer() {
        return correct_answer;
    }

    public void setCorrect_answer(String correct_answer) {
        this.correct_answer = correct_answer;
    }

    public String getContent_html() {
        return content_html;
    }

    public void setContent_html(String content_html) {
        this.content_html = content_html;
    }

    public String getExplain_html() {
        return explain_html;
    }

    public void setExplain_html(String explain_html) {
        this.explain_html = explain_html;
    }

    public long getUpdated_at() {
        return updated_at;
    }

    public void setUpdated_at(long updated_at) {
        this.updated_at = updated_at;
    }

    public QuestionCategoryBean getCategory() {
        return category;
    }

    public void setCategory(QuestionCategoryBean category) {
        this.category = category;
    }

    public List<SelectionBean> getSelections() {
        return selections;
    }

    public void setSelections(List<SelectionBean> selections) {
        this.selections = selections;
    }


    @Override
    public int compareTo(@NonNull QuestionBean o) {
        return this.getNo() - o.getNo();
    }
}
